package com.lxs.legou.order.service;

import com.lxs.legou.core.service.ICrudService;
import com.lxs.legou.order.po.Order;

/**
 * @Auther: Mcb
 * @Date: 2022/1/21 23:34
 * @Description:
 */
public interface OrderService extends ICrudService<Order> {

    /**
     * 添加订单
     * @param order
     */
    void add(Order order);

    /**
     * 更新订单支付状态，MQ监听支付状态调用
     * @param outTradeNo 订单号，对应order表Id
     * @param tradeNo 交易流水号
     */
    void udpatePayState(String outTradeNo, String tradeNo);

    /**
     * 支付状态异常，更新支付状态未支付，回滚库存
     * @param outTradeNo
     */
    void udpatePayStateByError(String outTradeNo);

    /**
     * 支付成功，改变订单状态
     * @param orderId
     */
    void pay(String orderId);
}
